//index.js
//获取应用实例
const app = getApp()
import utils from '../../../utils/util.js'

Page({
  data: {
    nowDate: utils.formatTime(new Date().getTime(), 'Y年M月'),
    // 已取消tab页面
    tabsIndex: 0, // 顶部tab的下标
    unitsData: {}, // 从后台获取的原始数据
    unitsList: [], // 处理后在picker中显示的数据
    currentUnit: ['1-1', 1], //当前picker选中的值 初始赋值第一个列第一项 第二列第一项 并且不会被清空
    statusList: ['全部', '未抄表', '已抄表', '已补录'],
    currentStatus: '全部',
    
    pickerType: 'unit', //筛选器的类型 单元楼/状态

    showUnit: false, // 筛选 单元楼 popup
    showStatus: false, // 筛选 状态 popup
    check: false, //抄表popup
    todoNumber: 0,
    listData: [],
    count: 1,

    currentHouse: null, //当前的抄表的房号
    currentHouseId: null,// 当前抄表的房间id
    value: null,

    w_num: '',
    e_num: '',
    g_num: '',
    w_image: [],
    e_image: [],
    g_image: [],
    remark: '',
    showInput: false,
    checkText: '12',
  },
  onLoad () {
    this.getUnitList()
  },
  onShow() {
    // this.setData({
    //   nowDate: utils.formatTime(new Date.getTime())
    // })
  },
  preventMove() {
    return
  },
  /**
   * 点击假的textarea 开始输入
   */
  changeInput(e) {
    this.setData({
      remark: e.detail.value,
      showInput: e.currentTarget.dataset.type
    })
    console.log(e)
  },
  /**
   * 获取级联的选择数据
   */
  getUnitList() {
    let self = this
    wx.showLoading({
      title: '加载楼层数据',
      mask: true
    })
    app.globalData.request('get', 'applet/read_meter/HouseUnitTwo', {
      id: wx.getStorageSync('id')
    }).then(res => {
      let columns = [
        {
          values: Object.keys(res.data),
          className: 'column1'
        },
        {
          values: res.data[Object.keys(res.data)[0]],
          className: 'column2',
          defaultIndex: 0
        }
      ]
      self.setData({
        currentUnit: [Object.keys(res.data)[0], 1],
        unitsData: res.data,
        unitsList: columns
      })
      this.getListData(true)
    })
  },
  /**
   * 切换 顶级tabs
   */
  // onChange(e) {
  //   this.setData({
  //     tabsIndex: e.detail.index
  //   })
  //   this.getListData(true)
  // },
  /**
   * 级联picker内 数据变化 将二级的值修改
   */
  onPickerChange(e) {
    const { picker, value, index } = e.detail
    picker.setColumnValues(1, this.data.unitsData[value[0]]);
  },
  /**
   * 点击picker确定 赋值
   */
  onPickerConfirm(event) {
    if (event.currentTarget.dataset.type == 'unit') {
      this.setData({
        showUnit: false,
        currentUnit: event.detail.value
      })
    } else {
      this.setData({
        showStatus: false,
        currentStatus: event.detail.value
      })
    }
    this.getListData()
  },
  /**
   * 点击picker取消 还原值 清空操作痕迹
   */
  onPickerCancel(event) {
    const { picker, value, index } = event.detail;
    if (event.currentTarget.dataset.type == 'unit') {
      this.selectComponent(`#${event.currentTarget.dataset.type}`).setColumnValue(0, this.data.currentUnit[0])
      this.selectComponent(`#${event.currentTarget.dataset.type}`).setColumnValue(1, this.data.currentUnit[1])
    } else {
      this.selectComponent(`#${event.currentTarget.dataset.type}`).setValues([this.data.currentStatus])
    }
    this.setData({
      showUnit: false,
      showStatus: false
    })
  },
  /**
  * 点击房号 开始抄表 记录当前的房间id 同时查询已有的记录
  */
  showCheckPopup(e) {
    app.globalData.request('get', 'applet/read_meter/DetailMeter', {
      id: e.currentTarget.dataset.houseid,
    }).then(res => {
      this.setData({
        currentHouse: e.currentTarget.dataset.house,
        currentHouseId: e.currentTarget.dataset.houseid,
        w_num: res.data.w_num == 0 ? '' : res.data.w_num,
        e_num: res.data.e_num == 0 ? '' : res.data.e_num,
        g_num: res.data.g_num == 0 ? '' : res.data.g_num,
        w_image: res.data.w_image,
        e_image: res.data.e_image,
        g_image: res.data.g_image,
        remark: res.data.remark,
      });
      wx.nextTick(() => {
        this.setData({ check: true })
      })
    })
    
  },
  /**
   * 关闭抄表 popup
   */
  closeCheck() {
    this.setData({
      w_num: '',
      e_num: '',
      g_num: '',
      remark: '',
      check: false
    })
  },
  /**
   * 输入值变化 赋值
   */
  numberChange(e) {
    console.log(e)
    this.setData({
      [e.target.id]: e.detail
    })
  },
  /**
   * 录入抄表的数据, 可以全部输入 也可以部分输入
   */
  checkItem() {
    let regTest = new RegExp(/(^[1-9](\d+)?(\.\d{1,2})?$)|(^\d\.\d{1,2}$)/) // 大于零的小数(保留最多两位)
    // 依次遍历校验表额数据 全部通过则提交 只需要有一个输入框有值
    let valid1, valid2, valid3 = true
    this.data.w_num && regTest.test(this.data.w_num) ? valid1 = true : valid1 = false
    this.data.e_num && regTest.test(this.data.e_num)   ? valid2 = true : valid2 = false
    this.data.g_num && regTest.test(this.data.g_num)   ? valid3 = true : valid3 = false

    if (valid1 || valid2 || valid3) {
      app.globalData.request('post', 'applet/read_meter/EditMeter', {
        e_num: this.data.e_num,
        w_num: this.data.w_num,
        g_num: this.data.g_num,
        e_image: this.data.e_image,
        w_image: this.data.w_image,
        g_image: this.data.g_image,
        remark: this.data.remark,
        id: this.data.currentHouseId
      }).then(res => {
        
        this.closeCheck()
        this.getListData()
        wx.showToast({ title: '抄表成功' })
      }).catch(err => { })
    } else {
      wx.showToast({
        title: '请正确录入至少一项',
        icon: 'none'
      })
    }
  },
  /**
   * popup开启
   */
  showPopup(e) {
    if(e.currentTarget.dataset.type == 'status') {
      this.setData({
        pickerType: 'status',
        showStatus: true
      });
    } else {
      this.setData({
        pickerType: 'unit',
        showUnit: true,
      });
    }
  },
  /**
   * 根据状态类型获取列表数据
   */
  getListData() {
    wx.showLoading({ title: '加载中...', mask: true})
    let self = this
    // switch (this.data.tabsIndex) {
    //   case 0:
    //     url = 'applet/read_meter/ElectricityMeter'
    //     break;
    //   case 1:
    //     url = 'applet/read_meter/WaterMeter'
    //     break;
    //   case 2:
    //     url = 'applet/read_meter/GasMeter'
    //     break;
    //   default:
    //     url = 'applet/read_meter/ElectricityMeter'
    //     break;
    // }
    let form = {
      admin_id: wx.getStorageSync('id'),
      tung: this.data.currentUnit[0].split('-')[0],
      unit: this.data.currentUnit[0].split('-')[1],
      layer: this.data.currentUnit[1],
      status: this.data.statusList.indexOf(this.data.currentStatus) == 0 ? '' : this.data.statusList.indexOf(this.data.currentStatus)
    }
    app.globalData.request('get', 'applet/read_meter/meter', form).then(res => {
      this.setData({
        listData: res.data.data,
        todoNumber: res.data.todo,
        count: res.data.count
      })
      wx.hideLoading()
      // 加载完毕后强制关闭下拉刷新
      wx.stopPullDownRefresh()
    }).catch(err => {
      wx.hideLoading()
    })
  },
  /** 子组件上传完成的事件 */
  uploaded(e) {
    console.log(e.detail.fileList)
    this.setData({
      [e.currentTarget.id]: e.detail.fileList.map(item => {
        return item.url
      })
    })
  }
})
